/*
 * @lc app=leetcode.cn id=572 lang=javascript
 *
 * [572] 另一棵树的子树
 */

// @lc code=start
/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */

/**
 * @param {TreeNode} tree 需要转换的二叉树
 * @return {number[]} 数组（后序遍历）
 */
function treeToArr (tree) {
    let arr = []

    function fun(tree) {
        if (tree) {
            arr.push('/' + tree.val + '/')
            fun(tree.left)
            fun(tree.right)
        } else {
            arr.push('//')
        }
    }

    fun(tree)

    return arr
}

/**
 * @param {TreeNode} root
 * @param {TreeNode} subRoot
 * @return {boolean}
 */
var isSubtree = function(root, subRoot) {
    let rootStr = treeToArr(root).join('')
    let subRootStr = treeToArr(subRoot).join('')
    console.log(rootStr, subRootStr)
    return rootStr.includes(subRootStr)
};
// @lc code=end

/* 

    忏愧，这道题也没做出来看的题解。
    本来用的是二叉树字符串化，但是想了想null的情况可能导致顺序还是不一样，就没采用；
    看了题解才知道如果为null就在数组里添加占位标识就好了。
    然后使用递归暴力去解也是临门一脚。

*/

